<?php

class Attach extends AppModel {

    var $useTable = 'attach'; // nome della tabella

	public $belongsTo = array(
        'AttachTipo' => array(
            'className'    => 'AttachTipo' 
            ,'foreignKey' => 'attach_tipo'
        ) 
	);
	
	var $attachTipo = null;

	private $fileTemporaneo = null;
	

	public function setFileTemporaneo($fileTemporaneo) {
		$this->fileTemporaneo=$fileTemporaneo;
	}
	
	public function getFileTemporaneo() {
		return $this->fileTemporaneo;
	}
	
    
	public function save($data = null, $validate = true, $fieldList = array()) {
		
			parent::save($data, $validate, $fieldList);
			// leggo la configurazione del tipo attach
			App::import('model','AttachTipo');
			$this->attachTipo = new AttachTipo();
			$this->attachTipo->read(null,$this->field("attach_tipo"));
			$this->saveFile();

	}


	private function saveFile() {
			// print_r($this->attachTipo);die;
			if ($this->attachTipo->data['AttachTipo']['tipo_mem'] == "DB") {
				// memorizzazione file su database
				App::uses("AttachDB", "Lib/attach");
				$attachStore = new AttachDB($this);
				$attachStore->save();
			} else if ($this->attachTipo->data['AttachTipo']['tipo_mem'] == "FILE") {
				// memorizzazione file su filesystem
				App::uses("AttachFILE", "Lib/attach");
				$attachStore = new AttachFILE($this);
				$attachStore->save();
			} else if ($this->attachTipo->data['AttachTipo']['tipo_mem'] == "FTP") {
				// memorizzazione file su ftp
				App::uses("AttachFTP", "Lib/attach");
				$attachStore = new AttachFTP($this);
				$attachStore->save();
			} else {
				// tipo memorizzazione non supportata
			}
	}

}

?>